'''
s = "Hi LanQiao"

-> 

"LanQiao" A

A. s[-7:]    从 -7 个元素开始，一直到 s 的结束
B. s[-6:-1]  从 -6 个元素开始，一直到 -2 个元素
C. s[-7:0]   X
D. s[-7:-1]  从 -7 开始，一直到 -2 个元素

用负数作为索引访问字符串，或者数组，表示从右向左访问内容

s[-1] = "0"
s[-2] = "a"

s[beg:end]

'''

'''
f = 2021.0529

打印这个浮点数：2021.05

print(f) => 2021.05

f = 2021.0529
f_str = str(f)
print(f_str[0:7])

f = 2021.0529
# 格式化浮点数打印
print("{:.2f}".format(f))
'''

'''
pi = 3.1415926

把浮点数取整的函数
round(pi) - 对参数四舍五入进行取整的函数

pi = 3.5415926
print(round(pi, 3))
'''

'''
ord - 得到某一个字符的 ASCII 码

- 65 - 90 大写字母
- 大于 90  小写字母
print(ord('A'))
'''

'''
Solution 3

i - 从什么地方开始找
j - 真实找数字子串
ans = max(ans, cnt)
cnt = 2
1
l q 1 2 h 5 6 7 j 7 6 5
                        ^i
      ^j

位置 j 是数字么？
不是 - 数字子串结束了
'''
def longest_sub_digits(str):
    ans = 0 # 最长子串的长度
    
    for i in range(0, len(str)):
        # 对于每一个起始位置 i
        # 我们都应该从位置 i 开始找数字子串
        cnt = 0 # 每一次从 j 开始的数字子串的长度
        for j in range(i, len(str)):
            # 对于每一个位置 j
            # 如果 str[j] 是数字，更新数字子串的长度记录
            if str[j].isdigit():
                cnt += 1
            else:
                break
        
        ans = max(ans, cnt)

    return ans

print(longest_sub_digits("lq12h5678j765"))    


'''
Solution 4
'''
def isPrime(n):
    # 只要 2 ... n-1 找到一个能整除 n，n 就不是质数
    for i in range(2, n):
        if n % i == 0:
            # n 能被 i 整除
            return False

    return True

def solution4(n):
    ans = n - 1

    # 在 2 和 n-1 之间，找质数和
    # 找相加和为 n 的两个质数
    for i in range(2, n):
        x = i
        y = n - i
        if isPrime(x) and isPrime(y):
            diff = abs(x - y) # n 的两个质数加数的差
            ans = min(diff, ans)
    
    return ans
